package com.ibatis4J.framework.dal.dialect;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;

import com.ibatis4J.framework.dal.exception.DalException;


/**
 * 数据库方言工厂类<br>
 * 
 * @author liuwenya
 */
public class DialectFactory {
	/**
     * 方言Map
     */
    private Map<String, Dialect> mapDialect;

    /**
     * 获取方言Map
     * 
     * @return 方言Map
     */
    public Map<String, Dialect> getMapDialect() {
        return mapDialect;
    }

    /**
     * 设置方言Map
     * 
     * @param mapDialect 方言Map
     */
    public void setMapDialect(Map<String, Dialect> mapDialect) {
        this.mapDialect = mapDialect;
    }

    /**
     * 获取方言数据库类型
     * 
     * @param dbType 数据源类型
     * @return 数据库方言对象
     */
    public Dialect getDBDialect(String dbType) {
        if (StringUtils.isBlank(dbType)) {
            throw new DalException("error.dal.005", "DBType is null or empty." );
        }
        return mapDialect.get(dbType.toLowerCase());
    }
}
